home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Inne / Gry / Carnage_Contest / scripts / CC Original / weapons / Vertical Laser.lua < prev    next >
Text File  |  2010-03-16  |  3KB  |  90 lines

  1. --------------------------------------------------------------------------------
  2. -- Weapon Vertical Laser + Projectile Laser
  3. -- Original Carnage Contest Weapon
  4. -- Script by DC, August 2009, www.UnrealSoftware.de
  5. --------------------------------------------------------------------------------
  6.  
  7. -- Setup Tables
  8. if cc==nil then cc={} end
  9. cc.vlaser={}
  10. cc.vlaser.laser={}
  11.  
  12. -- Load & Prepare Ressources
  13. cc.vlaser.gfx_wpn=loadgfx("weapons/vlaser.bmp")                                    -- Weapon Image
  14. setmidhandle(cc.vlaser.gfx_wpn)
  15. cc.vlaser.gfx_laser=loadgfx("weapons/laserbeam.bmp")                            -- Laser Beam
  16. setmidhandle(cc.vlaser.gfx_laser)
  17. cc.vlaser.sfx_attack=loadsfx("superlaser.ogg")                                    -- Attack Sound
  18.  
  19. --------------------------------------------------------------------------------
  20. -- Weapon: Vertical Laser
  21. --------------------------------------------------------------------------------
  22.  
  23. cc.vlaser.id=addweapon("cc.vlaser","Vertical Laser",cc.vlaser.gfx_wpn,0,3)        -- Add Weapon (0 uses, first in round 3)
  24.  
  25. function cc.vlaser.draw()                                                        -- Draw
  26.     -- HUD Positioning
  27.     if weapon_shots==0 then
  28.         hudpositioning(pos_invisible)
  29.     end
  30. end
  31.  
  32. function cc.vlaser.attack(attack)                                                -- Attack
  33.     if (weapon_shots<=0) and (weapon_position==1) then
  34.         -- No more weapon switching!
  35.         useweapon(0)
  36.         weapon_shots=weapon_shots+1
  37.         -- Destroy Terrain
  38.         terrainrect(weapon_x-5,0,10,getmapheight(),0x00000000)
  39.         -- Damage Players
  40.         players=playertable()
  41.         for i=1,#players,1 do
  42.             if getplayerhealth(players[i])>0 then
  43.                 if getplayerx(players[i])+7>=weapon_x-5 and getplayerx(players[i])-7<=weapon_x+5 then
  44.                     playerdamage(players[i],50)
  45.                 end
  46.             end
  47.         end
  48.         -- FX
  49.         playsound(cc.vlaser.sfx_attack)
  50.         particle(p_muzzle,weapon_x,weapon_y)
  51.         particlecolor(255,0,0)
  52.         particlefadealpha(0.005)
  53.         particlesize(1,10)
  54.         particlerotation(0)
  55.         -- Laser
  56.         id=createprojectile(cc.vlaser.laser.id)
  57.         projectiles[id]={}
  58.         projectiles[id].timer=30
  59.         projectiles[id].x=weapon_x
  60.         projectiles[id].y=weapon_y
  61.         -- End Turn
  62.         endturn()
  63.     end
  64. end
  65.  
  66. --------------------------------------------------------------------------------
  67. -- Projectile: Laser
  68. --------------------------------------------------------------------------------
  69.  
  70. cc.vlaser.laser.id=addprojectile("cc.vlaser.laser")                    -- Add Projectile
  71.  
  72. function cc.vlaser.laser.draw(id)                                    -- Draw
  73.     setblend(blend_light)
  74.     setcolor(255,0,0)
  75.     setalpha(projectiles[id].timer/30.0)
  76.     setrotation(0)
  77.     setscale(1,getmapwidth()/10.0)
  78.     drawimage(cc.vlaser.gfx_laser,projectiles[id].x,getmapheight()/2.0)
  79. end
  80.  
  81. function cc.vlaser.laser.update(id)                                    -- Update
  82.     -- Timer
  83.     projectiles[id].timer=projectiles[id].timer-1
  84.     if projectiles[id].timer<=0 then
  85.         -- Free projectile
  86.         freeprojectile(id)
  87.     end
  88.     -- Scroll to projectile
  89.     scroll(projectiles[id].x,projectiles[id].y)
  90. end